package com.boc;

import java.util.ArrayList;

public class LeetCode {
    public int[][] imageSmoother(int[][] img) {
        int column = img[0].length;
        int row = img.length;
        int[][] img1 = new int[row][column];
        for (int m = 0; m < row; m++) {
            for (int n = 0; n < column; n++) {
                int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;
                int notZero = 0;
                if (m - 1 >= 0 && n - 1 >= 0) {
                    a = img[m-1][n-1];
                    notZero++;
                }

                if (m - 1 >= 0 && n >= 0) {
                    b = img[m-1][n];
                    notZero++;
                }

                if (m - 1 >= 0 && n + 1 < column) {
                    c = img[m-1][n+1];
                    notZero++;
                }

                if (m >= 0 && n - 1 >= 0) {
                    d = img[m][n-1];
                    notZero++;
                }

                e = img[m][n];
                notZero++;

                if (m >= 0 && n + 1 < column) {
                    f = img[m][n+1];
                    notZero++;
                }

                if (m + 1 < row && n - 1 >= 0) {
                    g = img[m+1][n-1];
                    notZero++;
                }

                if (m + 1 < row && n >= 0) {
                    h = img[m+1][n];
                    notZero++;
                }

                if (m + 1 < row && n + 1 < column) {
                    i = img[m+1][n+1];
                    notZero++;
                }

                int[] nums = {a, b, c, d, e, f, g, h, i};
//                for (int i1 = 0; i1 < nums.length; i1++) {
//                    if (nums[i1] != 0) {
//                        notZero++;
//                    }
//                }
                double res = Math.floor((a+b+c+d+e+f+g+h+i)/notZero);
                img1[m][n] = (int) Math.floor((a+b+c+d+e+f+g+h+i)/notZero);
            }
        }
        return img1;
    }

    public int fib(int n) {
        if (n == 0) {
            return 0;
        }

        if (n == 1) {
            return 1;
        }

        ArrayList<Integer> fibs = new ArrayList<>();
        fibs.add(0);
        fibs.add(1);
        for (int i=2;i<=n;i++) {
            fibs.add(fibs.get(i - 2) + fibs.get(i - 1));
            System.out.println(fibs.get(i));
        }
        return fibs.getLast();
    }

}